package com.zhongke.cotrun.service.impl;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.zhongke.cotrun.service.AgentJobsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zhongke.cotrun.mapper.AgentJobsMapper;
import com.zhongke.cotrun.model.pojo.AgentJobs;

/**
 * @Description: 经纪人工作记录信息
 * @Author: songjing
 * @Date:   2020-03-28
 * @Version: V1.0
 */
@Service
public class AgentJobsServiceImpl extends ServiceImpl<AgentJobsMapper, AgentJobs> implements AgentJobsService {
	@Autowired
	AgentJobsMapper agentJobsMapper;
	 /**
     * 根据用户主键、工作主键、工作类型、状态等查看工作关联列表
     * @param agentInfoId 经纪人表主键
     * @param userInfoId 用户表主键
     * @param mainId 工作表主键
     * @param type 工作类型
     * @param state 状态
     * @param pageNum 页码
     * @param pageSize 页大小
     * @return
     */
	public PageInfo selectAll(Long agentInfoId,Long userInfoId,Long mainId,String type,String state, String searchKey, Integer pageNum, Integer pageSize){
		PageHelper.startPage(pageNum, pageSize);		
		List<AgentJobs> list = agentJobsMapper.selectAll(agentInfoId,userInfoId,mainId,type,state,searchKey);
		PageInfo pageInfo = new PageInfo(list);
	    return pageInfo;
	}
	/**
     * 统计经纪人评分
     * @param agentInfoId 经纪人表主键
     * @param userInfoId 用户表主键
     * @param type 工作类型
     * @param state 状态
     * @return
     */
    public Map sumScoreByUser(Long agentInfoId,Long userInfoId,String type,String state){
    	return agentJobsMapper.sumScoreByUser(agentInfoId,userInfoId,type,state);
    }
	/**
     * 根据用户主键、工作主键、工作类型、状态等统计
     * @param agentInfoId 经纪人表主键
     * @param userInfoId 用户表主键
     * @param mainId 工作表主键
     * @param type 工作类型
     * @param state 状态
     * @return
     */
    public Integer countAll(Long agentInfoId,Long userInfoId,Long mainId,String type,String state){
    	return agentJobsMapper.countAll(agentInfoId,userInfoId,mainId,type,state);
    }
    /**
     * 统计工作类型相关数量
      * @param agentInfoId 经纪人表主键
     * @param userInfoId 用户表主键
     * @param mainId 工作表主键
     * @param state 状态
     * @return
     */
    public Map countAllByType(Long agentInfoId,Long userInfoId,Long mainId,String state){
    	return agentJobsMapper.countAllByType(agentInfoId,userInfoId,mainId,state);
    }
}